package com.william.jdbcplus.boot.test.entity;

import com.william.jdbcplus.common.annotation.Table;
import com.william.jdbcplus.common.annotation.TableColumn;
import com.william.jdbcplus.common.annotation.TableId;
import com.william.jdbcplus.common.entity.Entity;
import com.william.jdbcplus.common.enums.IdType;
import lombok.Getter;
import lombok.Setter;

import java.util.Date;

/**
 * 检验结果Entity
 *
 * @author niliwei
 * @version 2021-05-24
 */
@Table("lis_result")
@Getter
@Setter
public class Result implements Entity {


    @TableId(value = "result_id", type = IdType.GUID)
    private String id; // 主键id

    @TableColumn("test_id")
    private String testId; // 测试id

    @TableColumn("thirdplat_id")
    private Long thirdPlatId; // 测试医院为外部系统，在云LIS中配置的第三方平台id。如果是云LIS做的测试则为空

    @TableColumn("test_num")
    private String testNum; // 测试编号

    @TableColumn("test_date")
    private Date testDate; // 测试日期

    @TableColumn("test_barcode")
    private String barcode; // 条码号

    @TableColumn("inst_id")
    private Long instId; // 仪器id

    @TableColumn("inst_code")
    private String instCode; // 仪器编码

    @TableColumn("inst_name")
    private String instName; // 仪器名称

    @TableColumn("item_id")
    private Long itemId; // 项目明细id

    @TableColumn("item_name")
    private String itemName; // 项目明细代码缩小

    @TableColumn("item_name_cn")
    private String itemNameCn; // 项目明细中文名称

    @TableColumn("item_name_en")
    private String itemNameEn; // 项目明细英文名称

    @TableColumn("item_code")
    private String itemCode; // 项目编码

    @TableColumn("item_name_out")
    private String itemNameOut; // 项目代号：外部

    @TableColumn("item_code_out")
    private String itemCodeOut; // 项目外部编码：外部

    @TableColumn("item_namecn_out")
    private String itemNameCnOut; // 项目中文名称：外部

    @TableColumn("item_nameen_out")
    private String itemNameEnOut; // 项目英文名称：外部

    @TableColumn("item_channel")
    private String itemChannel; // 项目明细在仪器中配置的通道号

    @TableColumn("result_symbol")
    private String resultSymbol; // 结果符号> < >= <=

    @TableColumn("item_result")
    private Double itemResult; // 数值结果

    @TableColumn("item_result_text")
    private String itemResultText; // 仪器传值1

    @TableColumn("item_remark")
    private String itemRemark; // 备注结果

    @TableColumn("item_od")
    private String itemOd; // 仪器传值2

    @TableColumn("item_sco")
    private String itemSco; // 仪器传值3

    @TableColumn("item_result4")
    private String itemResult4; // 仪器传值4

    @TableColumn("item_unit")
    private String itemUnit; // 单位(必须为String类型，报表显示用)

    @TableColumn("item_ref_min")
    private Double itemRefMin; // 参考值下限

    @TableColumn("item_ref_max")
    private Double itemRefMax; // 参考值上限

    @TableColumn("item_ref")
    private String itemRef; // 参考值文本

    @TableColumn("item_limit_min")
    private Double itemLimitMin; // 项目极限值下限

    @TableColumn("item_limit_max")
    private Double itemLimitMax; // 项目极限值上限

    @TableColumn("item_method")
    private String itemMethod; // 测量方法

    @TableColumn("item_flag")
    private Integer itemFlag; // 1偏低 2 正常 3 偏高 4 不判断（对应枚举：com/iteminst/getAllResultJudge）

    @TableColumn("item_flag_str")
    private String itemFlagStr; // 标记箭头

    @TableColumn("print_grp")
    private Long printGroup; // 打印分组

    @TableColumn("print_sort")
    private Long printSort; // 打印顺序

    @TableColumn("domain_id")
    private Long domainId; // 所属区域云id

    @TableColumn("hosp_id")
    private Long hospId; // 医院id

    @TableColumn("hosp_code")
    private String hospCode; // 医院系统编码

    @TableColumn("hosp_name")
    private String hospName; // 医院名称

    @TableColumn("dsthosp_id")
    private Long dstHospId; // 医院id

    @TableColumn("dsthosp_code")
    private String dstHospCode; // 医院系统编码

    @TableColumn("dsthosp_name")
    private String dstHospName; // 医院名称

    @TableColumn("modlfy_flag")
    private Integer modifyFlag; // 修改标记

    @TableColumn("check_flag")
    private Integer checkFlag = 0; // 复查标记

    @TableColumn("crt_flag")
    private Integer crtFlag = 0; // 危急值标记 1危机值 0否

    @TableColumn("neg_text")
    private String negText; // 阴阳判断结果

    @TableColumn("his_flag")
    private Integer hisFlag; // 历史结果标记

    @TableColumn("his_result")
    private String hisResult; // 历史结果

    @TableColumn("his_result_time")
    private Date hisResultTime; // 历史结果时间

    @TableColumn("tip_ratio")
    private Integer tipRatio = 0; // 偏差大于设置 1

    @TableColumn("input_type")
    private Integer inputType = 0; // ResultSrcEnum 结果来源 0 仪器，1手工 3 计算 4外部系统

    @TableColumn("result_time")
    private Date resultTime; // 结果具体时间

    @TableColumn("input_pc")
    private String inputPc; // 入库地址

    @TableColumn("input_userid")
    private Long inputUserId; // 输入人id

    @TableColumn("input_user_name")
    private String inputUserName; // 输入人姓名

    @TableColumn("print_flag")
    private Integer printFlag; // 打印标记

    @TableColumn("order_id")
    private String orderId; // 对应病人订单项目id lis_order

    @TableColumn("order_item_id")
    private Long orderItemId; // 对应医嘱项目id lis_order_item

    @TableColumn("order_item_code")
    private String orderItemCode; // 对应医嘱项目id lis_order_item

    @TableColumn("order_item_name")
    private String orderItemName; // 对应医嘱项目id lis_order_item

}
